Embodiments of the present invention relate to web applications and more specifically to an automated test tool interface.
The World Wide Web (“the Web”) has undergone an extraordinary degree of evolution. What began as a simple format for exchanging documents in a platform independent manner has morphed into technology that enables access to a seemingly unlimited amount of information at any time and any place. Web pages today include active content, as provided by browser side scripting languages such as JavaScript. Web pages can be updated in real-time using technologies such as AJAX. Static web pages being served to users via relatively unintelligent web servers have been replaced by dynamically generated web pages that are created on the fly by the web server and which are responsive to input provided by the users.
In a modern web application development environment, a developer may use one or more application development frameworks in order create a web application. A web application may consist of one or more individual web pages and the control logic that determines the flow of those web pages. The web applications developer will design an application, both the visual appearance and the control logic that governs the behavior of the web application, using the application development framework. The application development framework allows the developer to work at a level of abstraction that is higher than the raw HTML code. The web application may then be deployed to a web server.
Once a web application is deployed, a user may access the web application using a web browser. The web application may determine which web page should be displayed to the user. In response, the web server may programmatically generate the determined web page and send the page to the user's browser. The user may then interact with the web application through the displayed web pages.
Users are becoming more and more reliant on web applications in their day to day life. Because of this reliance, users are becoming less and less tolerant of web applications that do not perform properly. One of the best ways to ensure that a web application performs properly is through rigorous testing of the application prior to release to the end user. A testing regime may be developed wherein testers develop a test plan which tests all of the functionality of the web application. If any errors (i.e. bugs) in the operation of the web application are discovered during testing, those errors can be resolved prior to release to the end user.
Although the need for thorough testing of web applications is clear, the testing phase can be extremely costly. A human tester may need to execute the test plan against a web application many times as new errors are discovered and resolved. Each of these iterations requires the time of the tester and can delay deployment of a new web application or of new features in an existing application. In order to alleviate the costs of testing, automated test frameworks have been created. Selenium, provided by SeleniumHQ.org, is an open source example of one such testing framework.
Using a testing framework, a tester may record the execution of the test plan. If the test plan needs to be executed again, the testing framework can replay the previously recorded execution of the test plan. As a result of such automation, the amount of human effort, and thus cost, in testing can be reduced. Unfortunately, currently available automated test frameworks are quite brittle in that minor changes made to a web page as a result of bug fixes can cause the recorded test plan to become invalid and the execution of the test plan to fail.